Інформація про новину
  • Переглядів: 2240
  • Дата: 4-10-2021, 08:22
4-10-2021, 08:22

25. Налагодження програмного коду в Python

Категорія: Інформатика





Попередня сторінка:  24. Сучасні мови програмування. Система...
Наступна сторінка:   26. Об'єкти, їх властивості та методи в ...

Одне із завдань програміста під час розробки програми полягає у відшукуванні й усунуненні помилок у програмному коді. Цей процес називають налагодженням програмного коду.

Інтерпретатор Python виявляє два типи помилок — синтаксичні помилки і винятки.

Синтаксичні помилки

Синтаксична помилка виникає, якщо порушено правила запису операторів, наприклад пропущено двокрапку в заголовку циклу. Про синтаксичні помилки ІСР попереджає під час набирання коду: команда, записана з порушенням правил синтаксису, підкреслюється червоною хвилястою лінією.

Програміст пропустив лапки в кінці текстової константи. Якщо навести вказівник на підкреслений фрагмент оператора, з’явиться підказка, як виправити помилку (рис. 25.1).

Якщо ж запустити код на виконання, то на панелі повідомлень буде виведено номер рядка коду з помилкою, оператор, запис якого містить помилку, і опис помилки (рис. 25.2).

Винятки

Іншим типом помилок є винятки (виняткові ситуації).

Виняток (англ. exception) — це помилка, що виникає у процесі виконання програми; вона не є синтаксичною і спричиняє аварійне припинення виконання програми.

Розглянемо причини виникнення винятків на прикладах.

Виняток NameError виникає за спроби використати змінну, якій не присвоєно значення. З точки зору інтерпретатора це означає, що такої змінної не існує (рис. 25.3, а). Назву змінної в тексті програми буде підкреслено червоною хвилястою лінією (рис. 25.3, б).

Якщо встановити курсор на назву змінної, виводиться лампочка

Якщо її клацнути, буде запропоновано варіанти виправлення помилки. На панелі виведення буде виведено тип винятку і повідомлення про те, що назву змінної b не визначено.

ZeroDivisionerror — виняток, який виникає, якщо в програмі робиться спроба ділення на нуль (рис. 25.4).

За спроби виконати оператор а = іп1:("Сонце") виникає виняток ValueError — помилка значення: рядок "Сонце" не можна перетворити на ціле число.

За спроби виконати оператор а = 10+"3" виникає виняток TypeError — помилка типу. Число 10 і рядок "З" належать до різних типів даних, над якими не можна виконати операцію додавання.

На/іагоджувач

Найскладніше виявити та виправити помилки, яких припустилися під час розробки алгоритму. Такі помилки називають логічними. Якщо, маючи на меті збільшити значення змінної Z на 1, написати Z = Z+2, то програма буде успішно опрацьована інтерпретатором. Проте результат її виконання виявиться хибним.

Відшукати логічні помилки в програмі вручну буває складно. Спрощує пошуки програма-налагоджувач (англ. — debugger). PyCharm має вбудований налагоджувач PyDev.Debugger.

Налагоджувач дозволяє встановити на певні рядки програми точки зупинки (англ. — breakpoint). При досягненні точки зупинки виконання програми зупиняється, а програміст може:

• вивчити стан програми в цей момент (зокрема, значення змінних);

• керувати подальшим виконанням програми по одній команді, слідкуючи, як змінюються значення змінних.

Щоб створити точку зупинки, слід клацнути на лівій смужці праворуч від номера рядка коду, на якому потрібно зупинити програму.

Щоб почати налагодження, слід вибрати пункт Debug у меню Run.

Учень склав програму для підрахунку в списку чисел, які не діляться на 3 (рис. 25.5), але отримав неправильний результат. Скориставшись налагоджувачем, він поставив точку зупинки на другому рядку, щоб дослідити роботу програми після введення даних.

Після запуску налагоджувана відкривається панель Console (Консоль), а післч досягнення точки зупинки виконання призупиняється. Відкривається вкладка Debugger (Налагоджувач), у виконаних рядках із оголошеннями змінних з’являються їхні поточні значення.

Після зупинки в другому рядку учень почав натискати кнопку

і спостерігати за значеннями змінних. При с = 47 змінна-лічиль-ник К не збільшилась, хоча мала б, адже 47 на 3 не ділиться. Помилку виявлено в умові оператора if с%3 == 0. При зміні умови на протилежну (if с%3 != 0), програма запрацювала правильно.

Розглянемо панель виведення в режимі налагодження (рис. 25.7).

1 — вікно Variables (Змінні) для спостереження за значеннями змінних;

2 — кнопки для загального керування (перезапустити проект, завершити виконання, нехтувати точки зупинки тощо);

3 — панель для перемикання між вкладками Debugger і Console; містить кнопки керування покроковим режимом виконання програми;

4 — містить кнопки для керування виведенням інформації у вікні Variables.

Щоб додати інформацію про змінну, слід натиснути

і вписати

назву змінної, значення якої потрібно відстежувати. Для видалення змінної зі списку використовується кнопка

Питання для самоперевірки

1. Поясніть помилки:

2. Програма для розрахунку кількості тракторів, потрібних для обробки поля, вивела результат: 2,4 трактора. Визначте, до якого виду належить помилка.

3. Поясніть порядок використання точок зупинки.

4. Дослідіть, як ІСР повідомляє користувача про помилки. Для цього змініть запис деяких операторів у файлі Вправа 21, наприклад: видаліть знак арифметичної операції «*»; видаліть лапки, що закривають текстову константу, тощо.

5. Норма площі озеленення міст, встановлена Всесвітньою організацією охорони здоров’я, дорівнює 21 м2 зелених насаджень на одного жителя. Напишіть програму для визначення площі зелених насаджень, потрібної вашому населеному пункту.

Вправа 25

Виконати налагодження програми для розв’язування задачі. Задача. Відомі назва планети, радіус її орбіти, швидкість руху по орбіті. Обчислити тривалість року на планеті (період її обертання навколо зорі). Перевірити роботу програми.

Заповнити таблицю:

1) Завантажте середовище PyCharm. Створіть файл типу Python file із назвою Вправа 25.

2) Уведіть текст програми у вікні текстового редактора (програмний код містить помилки!):

3) Виправте синтаксичні помилки та перевірте роботу програми для даних планети Земля.

4) Чи збігається відповідь із вказаною в таблиці? Якщо ні — проаналізуйте вираз, за яким обчислюється значення Period:

період обертання

виправте логічну помилку.

5) Виконайте обчислення для Венери, Нептуна, Марса.

6) Змініть програму так, щоб результат обчислень виводився в земних роках.

Комп'ютерне тестування

Виконайте тестове завдання 25 із автоматичною

перевіркою результату.

 

Це матеріал з підручника Інформатика 8 клас Бондаренко (2021)

 




Попередня сторінка:  24. Сучасні мови програмування. Система...
Наступна сторінка:   26. Об'єкти, їх властивості та методи в ...



^